Creeping Doom
Description The druid summons masses of flying insects, one swarm per two caster levels, that attack targets at random in the affected area. Swarms have a base attack bonus of +6 (with an additional to hit bonus based on the caster's Wisdom modifier x 2) and do 2d6 points of damage when they hit. Swarms last for three rounds before dissipating. Creeping doom stacks with itself - if the druid casts this spell again while swarms still exist, the new swarms will join the existing swarms in attacking their targets. Notes *This spell has an undocumented poison effect, DC 11. Targets who fail their save (usually those who roll a 1) take 2 points of dexterity damage. This effect applies every 3rd swarm attack, although the dexterity damage does not seem to be cumulative. *This spell will harm the allies at hardcore difficulty. *This spell will actually bypass Stoneskin, Greater Stoneskin, Premonition and other damage reduction effects. This happens every 3rd swarm attack (all other attacks are subject to damage reduction). *The spell seems takes into consideration the caster's improved Wisdom ability modifier. *The spell's every-third-swarm-attack effects don't seem to work when some swarm attacks miss. *The spell does not break the caster's invisibility. Gameplay *This spell bypasses Spell Resistance yet is hostile based. Despite it not being of any specific damage type, this means that it is a good way to get past spell mantles, defences or any kind of high spell resistance. *With no save, it does damage against any low AC target, generally mages. *However, you need a reasonable wisdom modifier to use this effectively. A modifier of +5 from 20 wisdom, for instance, gives a total BAB of (5 * 2) + 6 = 16, which can reasonably hit most monsters, but at later levels with large amounts of heavy armour and magical protections, the chances to hit become lower as wisdom doesn't keep up with increases in armor. *If cast at a single target which can be affected, the spell actually inflicts every single swarm against them - this can really add up, and do, in total for a level 20 caster, 10 x 2d6 damage per round, over 3 rounds, totalling (if they all hit of course) 60d6 piercing damage. *It can also be extended for even lengthier damage. Script Line 83/84/112/123 - GetFirst/NextObjectInShape() doesn't have bLineOfSight set to TRUE, meaning it can be cast on an area and go around corners, past doorways, or other obstacles things like Fireball can't. This is likely unintentional. Line 84 / 112: oTarget's loop is started, on the first pass of the loop, on line 84. The problem is, the second object is got too (oTarget2), however, it is assumed, on line 112, that we start on oTarget and have not got any further targets. This means the second target, oTarget2, is only got once we have already done a loop. Random? Yes, but unintentionally so! The best fix is to re-initialise the loop just before line 92. Line 96: It seems that the caster should not be affected (from the notes on line 85) but there is only a standard hostility check, and no oTarget != oCaster check. This is possibly a bug. Line 98: This if statement is not needed, it seems to imply this check is done before RunSwarmAttack() is run - this will just check at the instant the spell is cast that the areas the caster and target is in is the same (which of course they are), and the caster is alive (which they must be!) Line 130: Bugs with RunSwarmAttack(): GZGetDelayedSpellEffectsExpired() ). * fDuration is not used for anything. * Metamagic isn't applied to the 30 seconds of poison (which may be intentional). Line 140: The damage type (piercing) is not mentioned in the spell description. Line 142: Is it even possible to have a temporary 30 second poison effect? Wouldn't it be simpler to have a separate fortitude saving throw and apply a 30 second ability damage effect? The poison DC is very low, which might be intentional. The poison is not mentioned in the spell description too. NWN1 Comparison The NWN1 spell was vastly different, and was a more simple area effect spell.